home *** CD-ROM | disk | FTP | other *** search
- unit ListViewEx;
-
- interface
-
- uses
- Classes, ComCtrls;
-
- type
- TItemCheckEvent = procedure (Sender: TCustomListView;
- Item: TListItem; Checked: Boolean) of object;
-
- TListViewEx = class(TListView)
- private
- FOnCheck: TItemCheckEvent;
- FChecked: Boolean;
- FListItem: TListItem;
- protected
- function CanChange(Item: TListItem; Change: Integer): Boolean; override;
- procedure Change(Item: TListItem; Change: Integer); override;
- published
- property OnCheck: TItemCheckEvent read FOnCheck write FOnCheck;
- end;
-
- procedure Register;
-
- implementation
-
- uses
- CommCtrl;
-
- procedure Register;
- begin
- RegisterComponents('Clinic', [TListViewEx]);
- end;
-
- { TListViewEx }
-
- function TListViewEx.CanChange(Item: TListItem; Change: Integer): Boolean;
- begin
- Result := inherited CanChange(Item, Change);
- if Result and (Change = LVIF_STATE) then
- begin
- FListItem := Item;
- FChecked := Item.Checked
- end
- end;
-
- procedure TListViewEx.Change(Item: TListItem; Change: Integer);
- begin
- inherited;
- if (Change = LVIF_STATE) and (Item = FListItem) and
- (Item.Checked <> FChecked) and
- Assigned(FOnCheck) then
- FOnCheck(Self, Item, Item.Checked)
- end;
-
- end.
-